package com.zlj.request.classloader;

import java.io.IOException;
import java.io.InputStream;

import org.apache.commons.io.IOUtils;
import org.junit.Test;

/**
 * 演示CLassLoader 获取类路径资源
 * @author bashen
 *
 */
public class ClassLoaderDemo {
	
	@Test
	public void fun1() throws IOException{
		
		/*
		 * ClassLoader获取资源时，不能以"/"开头
		 */
		ClassLoader c = ClassLoaderDemo.class.getClassLoader();  //得到类加载期
		InputStream in = c.getResourceAsStream("a.txt");  //让类加载器去类路径下查找资源
		
		//InputStream in = c.getResourceAsStream("/a.txt");  //以"/"开头会报空指针异常 
		System.out.println(IOUtils.toString(in));  //你好世界！
	}
	
	@Test
	public void fun2() throws IOException{
		/*
		 * 使用Class来加载类路径下的资源1
		 */
		Class c = ClassLoaderDemo.class.getClass();
		InputStream in = c.getResourceAsStream("/a.txt");   //这个要加"/",与类加载器的效果相同
		System.out.println(IOUtils.toString(in));  //你好世界！
	}
	
	@Test
	public void fun3() throws IOException{
		/*
		 * 使用Class来加载类路径下的资源2
		 */
		Class c = ClassLoaderDemo.class.getClass();
		InputStream in = c.getResourceAsStream("a1.html");   //这个不加"/",到当前class对应的.class文件所在的目录去加载
		System.out.println(IOUtils.toString(in));  //你好世界！
	}
}
